/**
 * gislin 2017年7月7日
 */
package com.btcode.db.executer;

import com.btcode.db.config.DataBaseConfig;
import com.btcode.db.result.PageResult;
import com.btcode.db.result.Row;
import com.btcode.db.sqlparameter.PageInfo;
import com.btcode.db.sqlparameter.SQLParameterList;
import com.btcode.log.ILog;
import java.util.List;

/**
 * 数据执行接口
 *
 * @author gislin 2017年7月7日
 */
public interface IDataExecuter {

    DataBaseConfig getDataBaseConfig();

    List<Row> queryList(String sql, SQLParameterList parms);

    PageResult queryListPage(String sql, SQLParameterList parms, PageInfo pageInfo);

    Object queryScalar(String sql, SQLParameterList parms);

    void beginTransaction();

    void commit();

    void rollback();

    void setLog(ILog log);

    void create(String sql, SQLParameterList parms);

    void update(String sql, SQLParameterList parms);

    void delete(String sql, SQLParameterList parms);

    void ddl(String sql);

    void executeUpdateBatch(String sql, List<SQLParameterList> params);

    void logOn();

    void logOff();

    void close();
}